package com.kaili.pojo.entity;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.kaili.common.checkField.PhoneFeildCheck;
import com.kaili.utils.Annotation.CheckField;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 
 * </p>
 *
 * @author cgm
 * @since 2018-05-08
 */
@TableName("hs_ewbs_transfer")
public class HsEwbsTransfer implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 业务流水号
     */
    @TableId("operation_id")
    @ApiModelProperty(hidden = true)
    private String operationId;
    /**
     * 中转单号
     */
    @TableField("transfer_no")
    @CheckField
    @ApiModelProperty(value = "中转单号", required = true)
    private String transferNo;
    /**
     * 中转单制作网点id
     */
    @ApiModelProperty(value = "中转单制作网点id", required = true)
    @TableField("site_id")
    @CheckField
    private Integer siteId;
    /**
     * 中转时间
     */
    @TableField("transfer_time")
    @CheckField
    @ApiModelProperty(value = "中转时间", required = true)
    private Date transferTime;
    /**
     * 中转公司id
     */
    @TableField("transfer_company_id")
    @CheckField
    @ApiModelProperty(value = "中转公司id", required = true)
    private Integer transferCompanyId;
    /**
     * 车辆id
     */
    @TableField("car_id")
    @CheckField
    @ApiModelProperty(value = "车辆id", required = true)
    private Integer carId;
    /**
     * 驾驶员id
     */
    @TableField("driver_id")
    @CheckField
    @ApiModelProperty(value = "驾驶员id", required = true)
    private Integer driverId;
    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号", required = true)
    @CheckField(checkHandlerClass = PhoneFeildCheck.class)
    private String phone;
    /**
     * 途径网点
     */
    @ApiModelProperty(hidden = true)
    @TableField("next_site_id")
    private Integer nextSiteId;
    /**
     * 配载票数
     */
    @ApiModelProperty(hidden = true)
    @TableField("ewb_count")
    private Integer ewbCount;
    /**
     * 配载件数
     */
    @ApiModelProperty(value = "配载件数", required = true)
    @CheckField
    private Integer piece;
    /**
     * 扫描件数
     */
    @ApiModelProperty(hidden = true)
    @TableField("scan_piece")
    private Integer scanPiece;
    /**
     * 配载重量
     */
    @ApiModelProperty(value = "配载重量", required = true)
    @CheckField
    private BigDecimal weight;
    /**
     * 配载体积
     */
    @ApiModelProperty(value = "配载体积", required = true)
    @CheckField
    private BigDecimal vol;
    /**
     * 交接方式  0自送 1接货
     */
    @TableField("handover_method")
    @CheckField(regexp = "^(102|103)")
    @ApiModelProperty(value = "交接方式  102自送 103接货", required = true)
    private Integer handoverMethod;
    /**
     * 中转费
     */
    @TableField("transfer_charge")
    @CheckField
    @ApiModelProperty(value = "中转费", required = true)
    private BigDecimal transferCharge;
    /**
     * 送货费
     */
    @TableField("carry_charge")
    @CheckField
    @ApiModelProperty(value = "送货费", required = true)
    private BigDecimal carryCharge;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;
    /**
     * 创建人
     */
    @ApiModelProperty(hidden = true)
    @TableField("created_by")
    private Integer createdBy;
    /**
     * 创建时间
     */
    @ApiModelProperty(hidden = true)
    @TableField("created_time")
    private Date createdTime;
    /**
     * 第一次打印时间
     */
    @ApiModelProperty(hidden = true)
    @TableField("first_print_time")
    private Date firstPrintTime;
    /**
     * 最后一次打印时间
     */
    @ApiModelProperty(hidden = true)
    @TableField("last_print_time")
    private Date lastPrintTime;
    /**
     * 打印次数
     */
    @ApiModelProperty(hidden = true)
    @TableField("print_count")
    private Integer printCount;
    /**
     * 设备编号
     */
    @ApiModelProperty(hidden = true)
    @TableField("device_code")
    private String deviceCode;
    /**
     * 数据来源
     */
    @ApiModelProperty(hidden = true)
    @TableField("scan_source_id")
    private Integer scanSourceId;
    /**
     * 是否删除标识  1未删除  0 已删除
     */
    @ApiModelProperty(hidden = true)
    @TableField("rd_status")
    private Integer rdStatus;
    /**
     * 修改时间
     */
    @ApiModelProperty(hidden = true)
    @TableField("modified_time")
    private Date modifiedTime;
    /**
     * 修改人
     */
    @ApiModelProperty(hidden = true)
    @TableField("modified_by")
    private Integer modifiedBy;
    /**
     * 中转类型(0:发货中转,1.到货中转)
     */
    @TableField("trans_type")
    @CheckField(regexp = "^[0-1]")
    @ApiModelProperty(value = "中转类型(0:发货中转,1.到货中转)", required = true)
    private Integer transType;

    public Integer getTransType() {
        return transType;
    }

    public void setTransType(Integer transType) {
        this.transType = transType;
    }

    public String getOperationId() {
        return operationId;
    }

    public void setOperationId(String operationId) {
        this.operationId = operationId;
    }

    public String getTransferNo() {
        return transferNo;
    }

    public void setTransferNo(String transferNo) {
        this.transferNo = transferNo;
    }

    public Integer getSiteId() {
        return siteId;
    }

    public void setSiteId(Integer siteId) {
        this.siteId = siteId;
    }

    public Date getTransferTime() {
        return transferTime;
    }

    public void setTransferTime(Date transferTime) {
        this.transferTime = transferTime;
    }

    public Integer getTransferCompanyId() {
        return transferCompanyId;
    }

    public void setTransferCompanyId(Integer transferCompanyId) {
        this.transferCompanyId = transferCompanyId;
    }

    public Integer getCarId() {
        return carId;
    }

    public void setCarId(Integer carId) {
        this.carId = carId;
    }

    public Integer getDriverId() {
        return driverId;
    }

    public void setDriverId(Integer driverId) {
        this.driverId = driverId;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public Integer getNextSiteId() {
        return nextSiteId;
    }

    public void setNextSiteId(Integer nextSiteId) {
        this.nextSiteId = nextSiteId;
    }

    public Integer getEwbCount() {
        return ewbCount;
    }

    public void setEwbCount(Integer ewbCount) {
        this.ewbCount = ewbCount;
    }

    public Integer getPiece() {
        return piece;
    }

    public void setPiece(Integer piece) {
        this.piece = piece;
    }

    public Integer getScanPiece() {
        return scanPiece;
    }

    public void setScanPiece(Integer scanPiece) {
        this.scanPiece = scanPiece;
    }

    public BigDecimal getWeight() {
        return weight;
    }

    public void setWeight(BigDecimal weight) {
        this.weight = weight;
    }

    public BigDecimal getVol() {
        return vol;
    }

    public void setVol(BigDecimal vol) {
        this.vol = vol;
    }

    public Integer getHandoverMethod() {
        return handoverMethod;
    }

    public void setHandoverMethod(Integer handoverMethod) {
        this.handoverMethod = handoverMethod;
    }

    public BigDecimal getTransferCharge() {
        return transferCharge;
    }

    public void setTransferCharge(BigDecimal transferCharge) {
        this.transferCharge = transferCharge;
    }

    public BigDecimal getCarryCharge() {
        return carryCharge;
    }

    public void setCarryCharge(BigDecimal carryCharge) {
        this.carryCharge = carryCharge;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(Integer createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public Date getFirstPrintTime() {
        return firstPrintTime;
    }

    public void setFirstPrintTime(Date firstPrintTime) {
        this.firstPrintTime = firstPrintTime;
    }

    public Date getLastPrintTime() {
        return lastPrintTime;
    }

    public void setLastPrintTime(Date lastPrintTime) {
        this.lastPrintTime = lastPrintTime;
    }

    public Integer getPrintCount() {
        return printCount;
    }

    public void setPrintCount(Integer printCount) {
        this.printCount = printCount;
    }

    public String getDeviceCode() {
        return deviceCode;
    }

    public void setDeviceCode(String deviceCode) {
        this.deviceCode = deviceCode;
    }

    public Integer getScanSourceId() {
        return scanSourceId;
    }

    public void setScanSourceId(Integer scanSourceId) {
        this.scanSourceId = scanSourceId;
    }

    public Integer getRdStatus() {
        return rdStatus;
    }

    public void setRdStatus(Integer rdStatus) {
        this.rdStatus = rdStatus;
    }

    public Date getModifiedTime() {
        return modifiedTime;
    }

    public void setModifiedTime(Date modifiedTime) {
        this.modifiedTime = modifiedTime;
    }

    public Integer getModifiedBy() {
        return modifiedBy;
    }

    public void setModifiedBy(Integer modifiedBy) {
        this.modifiedBy = modifiedBy;
    }

    @Override
    public String toString() {
        return "HsEwbsTransfer{" +
        ", operationId=" + operationId +
        ", transferNo=" + transferNo +
        ", siteId=" + siteId +
        ", transferTime=" + transferTime +
        ", transferCompanyId=" + transferCompanyId +
        ", carId=" + carId +
        ", driverId=" + driverId +
        ", phone=" + phone +
        ", nextSiteId=" + nextSiteId +
        ", ewbCount=" + ewbCount +
        ", piece=" + piece +
        ", scanPiece=" + scanPiece +
        ", weight=" + weight +
        ", vol=" + vol +
        ", handoverMethod=" + handoverMethod +
        ", transferCharge=" + transferCharge +
        ", carryCharge=" + carryCharge +
        ", remark=" + remark +
        ", createdBy=" + createdBy +
        ", createdTime=" + createdTime +
        ", firstPrintTime=" + firstPrintTime +
        ", lastPrintTime=" + lastPrintTime +
        ", printCount=" + printCount +
        ", deviceCode=" + deviceCode +
        ", scanSourceId=" + scanSourceId +
        ", rdStatus=" + rdStatus +
        ", modifiedTime=" + modifiedTime +
        ", modifiedBy=" + modifiedBy +
        "}";
    }
}
